User activity tracking system

ABSTRACT

In one embodiment, sensor signals corresponding to motions of a client device are received. Activities of a user corresponding to the client device are determined, based on a first analysis algorithm that uses the sensor signals to select activity types, each activity type corresponding to a particular time period. A reference to the selected activity types is sent to the client device. User input indicating whether the reference is correct is received from the client device. Based on the indication, which reflects the accuracy of the first analysis algorithm, a priority between the first analysis algorithm and a second analysis algorithm is determined, based on determining which analysis algorithm is more accurate.

RELATED APPLICATIONS

This application is a continuation under 35 U.S.C. §120 of U.S. patent application Ser. No. 14/806,449, filed 22 Jul. 2015, which is a continuation under 35 U.S.C. §120 of U.S. patent application Ser. No. 14/570,966, filed 15 Dec. 2014, issued as U.S. Pat. No. 9,118,725, which is a continuation under 35 U.S.C. §120 of U.S. patent application Ser. No. 13/930,321, filed 28 Jun. 2013, issued as U.S. Pat. No. 8,948,783.

This application is related to U.S. patent application Ser. No. 13/930,347, filed on 28 Jun. 2013, (Attorney Reference No. 079894.2218), entitled USER ACTIVITY TRACKING SYSTEM AND DEVICE”, the disclosure of which is incorporated herein by reference in its entirety.

FIELD

The present disclosure generally relates to tracking, recording and analyzing user activities, and more specifically to systems and methods for identifying user activities based on sensor data collected by a mobile communication device of the user. Moreover, aspects of the disclosure are also directed to software products recorded on non-transitory machine-readable data storage media, wherein such software products are executable upon computing hardware, to implement the methods of the disclosure.

BACKGROUND

Tracking devices are known that sense and track user activities, especially sports activities. An example of a known activity tracking device is a wearable wristwatch device with a GPS receiver for tracking and analyzing ‘running’ activity of an associated user. Another example is a mobile application that utilizes GPS system of a respective mobile phone for recording movement of users while they exercise. Another example is a step counter used in shoes or attached to the user's clothes to collect the number of steps taken by the user. However, none of the existing tracking devices automatically sense, record, analyze and identify all types of user activities such as walking, running, jogging, cycling, rowing, driving with car, moving with bus, moving with train, walking stairs, running stairs, jumping, swimming, playing football, and skiing.

Nowadays, smartphones are equipped with an increasing number of sensors such as Global Positioning System (GPS) receivers, accelerometers, and proximity sensors, and smartphone users may find it interesting to have mobile applications that can automatically record, sense, analyze, and identify their activities. However, one of the key challenges in the automatic tracking of users' movements for the purpose of analyzing the type of activity is the classification of activity types. For example walking vs running activity may have only small difference in respect to the collected sensor data. Moreover, for the same activity, the sensor data may vary depending on how the smart phone is carried by the user. For example, the smartphone may be carried by the user in his/her hand, or in a pocket or in a backpack.

Hence, there is a need for an activity tracking solution that accurately senses and analyzes all kinds of user activities and that addresses the limitations of existing activity tracking solutions.

SUMMARY

The present disclosure provides a system for tracking and recording movements of a mobile communication device and a method of the using the same.

In one aspect, embodiments of the present disclosure provide a system for tracking and recording movements of a mobile communication device that includes one or more movement sensors and a wireless interface. The system includes a communication network for communicating with the mobile communication device and computing hardware for processing data supplied in operation from the mobile communication device. The mobile communication device communicates sensor signals to the system, wherein the sensor signals are indicative of motion associated with activities to which the mobile communication device is exposed by its user.

The computing hardware executes software products for analyzing the sensor signals to classify them into one or more temporal zones, and for analyzing the signals within each given temporal zone to determine one or more most likely activity types associated with the given temporal zone. The computing hardware further sends information indicating the most likely activity types associated with the temporal zones to the mobile communication device. The mobile communication device then requests its user to provide a confirmation whether or not the information indicating the most likely activity types associated with a temporal zone represents a correct analysis, and then communicates the confirmation back to the computing hardware for amending parameters and/or algorithms employed in the software products, which execute analysis of the sensor signals to improve their accuracy.

The system generates a temporal log of activities experienced by the mobile communication device, and presents the activities on a graphical user interface of a user in a timeline format.

The mobile communication device is implemented by way of at least one of: a portable computer such as a laptop, a smartphone, a wrist-worn phone, a phablet, a mobile telephone, a tablet computer, a portable media device or any other computing device that can be worn by the user and is capable of processing and displaying data. Moreover, one or more sensors of the mobile communication device are implemented using at least one of: a gyroscopic angular sensor, an accelerometer, a GPS position sensor, a cellular position sensor (i.e. using position derived/calculated in relation to one or more radio basestations (cellular and local area), a magnetometer, a microphone, a camera, a temperature sensor.

When executed on the computing hardware, the software products are operable to implement supervised or semisupervised classification algorithms such as neural networks, decision forest, and support vector machines, for analysis of information included in the sensor signals. As input, the supervised or semisupervised classification algorithms can use, for instance, the amplitudes of the frequency components of the information included in the one or more sensor signals, and the output of the classification algorithms are estimated probabilities of different activities, conditional on the sensor signals.

In another aspect, the mobile communication device includes a data processor for executing a mobile software application thereat, wherein the mobile software application is operable to cause a graphical user interface of the mobile communication device to present analyzed activity results provided from the computing hardware in a form of a timeline, wherein different analyzed activities are represented by mutually different symbols in respect of the timeline.

In yet another aspect, embodiments of the present disclosure provide a method of using the system for tracking and recording the movements of the mobile communication device.

In yet another aspect, embodiments of the present disclosure provide a mobile communication device for implementing the system for tracking and recording movements of the user.

Embodiments of the present disclosure sense, analyze and identify all types of user activities by analyzing the data collected from one or more sensors of a mobile communication device of a user. The identified activities are displayed on a graphical user interface of the mobile communication device in a timeline format. If the user disagrees/agrees with an identified activity, then they may provide their feedback and the feedback may be used to improve the analysis and identification of the activities for the next time. Thus, the accuracy of the analysis and identification of the user activities is optimized over time.

Additional aspects, advantages, features and objects of the present disclosure would be made apparent from the drawings and the detailed description of the illustrative embodiments construed in conjunction with the appended claims that follow.

It will be appreciated that features of the invention are susceptible to being combined in various combinations without departing from the scope of the invention as defined by the appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The summary above, as well as the following detailed description of illustrative embodiments, is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the present disclosure, exemplary constructions of the disclosure are shown in the drawings. However, the invention is not limited to specific methods and instrumentalities disclosed herein. Moreover, those in the art will understand that the drawings are not to scale. Wherever possible, like elements have been indicated by identical numbers.

FIG. 1 is an illustration of a high-level architecture of a system that is suitable for practicing various implementations of the present disclosure;

FIG. 2 is an illustration of an exchange of information between a mobile communication device and a computing hardware of FIG. 1, in accordance with the present disclosure;

FIG. 3 is an illustration of a graphical user interface (GUI) of the mobile communication device, in accordance with the present disclosure;

FIG. 4 is an illustration of an alternative layout of the GUI of the mobile communication device, in accordance with the present disclosure;

FIG. 5 is an illustration of steps of a method of determining activities of a user of a mobile communication device, in accordance with the present disclosure; and

FIG. 6 is an illustration of steps of using a system for tracking and recording movements of the mobile communication device, in accordance with the present disclosure.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

The following detailed description illustrates embodiments of the disclosure and ways in which it can be implemented. Although the best mode of carrying out the invention has been disclosed, those in the art would recognize that other embodiments for carrying out or practicing the invention are also possible.

The present disclosure provides a system for tracking and recording movements of a mobile communication device that includes one or more movement sensors and a wireless interface. The system includes a communication network for communicating with the mobile communication device and computing hardware for processing data supplied in operation from the mobile communication device. The mobile communication device communicates one or more sensor signals to the system, wherein the sensor signals are indicative of motion associated with activities to which the mobile communication device is exposed by its user.

The computing hardware executes one or more software products for analyzing the sensor signals to classify them into one or more temporal zones, and for analyzing the signals within each given temporal zone to determine the most likely activity type associated with the given temporal zone. The computing hardware further sends information indicating the most likely activity types associated with the temporal zones to the mobile communication device. The mobile communication device then requests its user to provide a confirmation whether or not the information indicating the most likely activity types associated with the temporal zones represent a correct analysis, and then communicates the confirmation back to the computing hardware for amending parameters and/or algorithms employed in the software products that execute analysis of the sensor signals to improve their accuracy.

Referring now to the drawings, particularly by their reference numbers, FIG. 1 is an illustration of a high-level architecture of a system 100 that is suitable for practicing various implementations of the present disclosure.

The system 100 includes a mobile communication device 102, and a server system 104 coupled in communication to the mobile communication device 102 by way of a communication network 106. The mobile communication device 102 is a handheld device of a user, and examples of the mobile communication device 102, include, but are not limited to, a smart phone, a wrist-worn phone, a phablet, a mobile telephone, a tablet computer executing operating systems such as Android, Windows, and iOS. The server system 104 includes a computing hardware that executes one or more software products for processing data supplied in operation from the mobile communication device 102. The server system 104 can be arranged as a cloud service or as dedicated servers located in a single site or at a plurality of mutually spatially distributed sites. Moreover, examples of the communication network 106 include, but are not limited to, a telecommunication network, and a WIFI network.

The mobile communication device 102 includes one or more sensors 108 and one or more positioning systems 110 to determine the position, movement, acceleration and/or environment of the mobile communication device 102, when a corresponding user performs one or more activities while carrying the device 102. Examples of such one or more activities, include, but are not limited to, walking, running, jogging, cycling, rowing, driving a car, moving with bus, moving with train, walking stairs, running stairs, jumping, swimming, playing football, and skiing. An example of the sensor 108 includes a motion sensor configured to measure the acceleration of the mobile communication device 102 in xyz-directions of a Cartesian co-ordinate system. Further examples of the sensor 108 include a gyroscopic angular sensor, a magnetometer, a microphone, a camera, and a temperature sensor. The positioning systems 110 are configured to determine the position of the mobile communication device 102 by implementing at least one of GPS positioning system, cell tower information for cellular networks, indoor positioning systems, WIFI fingerprinting and proximal WiFi networks. In an embodiment of the present invention, the mobile communication device 102 may periodically send the information collected by the sensors 108 and the positioning systems 110 to the server system 104 via the communication network 106.

The server system 104 includes a receiving module 112, a first processing module 114, a second processing module 116, and an output module 118. The receiving module 112 receives sensor and positioning data from the mobile communication device 102. The first processing module 114 executes a first process to analyze sensor data collected from the sensors 108, and the second processing module 116 executes a second process to analyze positioning data collected from the positioning systems 110. In an embodiment of the present disclosure, the first and second processes are parallel processes that might communicate with each other and also exchange data for analysis purposes. Based on the sensor data, the first processing module 114 generates an activity type of the user, and based on the positioning data, the second processing module 116 generates location and movement information pertaining to the activity. The output module 118 processes the activity type information and movement/location information of the activity to generate a summary/schedule of activities of the user. The output module 118 then sends the summary of activities to the mobile communication device 102 over the communication network 106.

The mobile communication device 102 includes a data processor (not shown) for executing a mobile software application thereat, wherein the mobile software application is operable when executed to cause a graphical user interface (GUI) of the mobile communication device to present summary of activities provided from the server system 104 in a timeline format. The user may send their positive/negative feedback on the summary of activities to the server system 104 and the server system 104 may receive, store and implement the feedback for improving their activity analysis.

In an embodiment of the present invention, some or all of the steps/analysis in the server system 104 may be implemented in the mobile communication device 102 based on the computing resources available in the mobile communication device 102.

FIG. 1 is merely an example, which should not unduly limit the scope of the claims herein. One of ordinary skill in the art would recognize many variations, alternatives, and modifications of embodiments herein.

FIG. 2 is an illustration of an exchange of information between a mobile communication device 202, and a server system 204 for tracking and analyzing activities of a user of the mobile communication device 202, in accordance with the present disclosure. The mobile communication device 202 and the server system 204 are examples of the mobile communication device 102 and the server system 104 respectively, and have been explained in conjunction with FIG. 1. A step 206 a takes place at the mobile communication device 202, where the corresponding sensors and positioning systems measure sensor and positioning data when a corresponding user performs an activity. A step 206 b represents transfer of sensor and positioning data from the mobile communication device 202 to the server system 204 for analysis of the user activity. In an embodiment, the mobile communication device 202 may send the sensor and positioning data continuously or in a buffered format. In another embodiment, the mobile communication device 202 may send the sensor and positioning data to the server system 204 in a raw format. In yet another embodiment, the mobile communication device 202 may process sensor and positioning data before sending to the server system 204. A step 206 c takes place at the server system 204, where the server system 204 analyses the sensor and positioning data received from the device 202. In an embodiment of the present invention, the server system 204 may perform analysis based on a supervised classification and/or other machine learning algorithms and form a summary of activities of the user. A step 206 d represents communication of summary of activities from the server system 204 to the mobile communication device 202. A step 206 e takes place at the mobile communication device 202, where the summary of activities is displayed on a graphical user interface (GUI) of the mobile communication device 202. A step 206 f represents a transfer of positive/negative feedback of the user on the summary of activities to the server system 204. Lastly, a step 206 g represents implementation of the feedback by the server system 204 by modifying parameters and/or to selecting training data for the machine learning algorithms for providing a more accurate summary of activities in future. Examples of machine learning algorithms, for activity monitoring include, but are not limited to, supervised or semisupervised classification algorithms such as neural networks, decision forest, and support vector machines. The feedback is provided as an input to the machine learning algorithms and is used to modify parameters and select training data for the machine learning algorithms.

FIG. 2 is merely an example, which should not unduly limit the scope of the claims herein. One of ordinary skill in the art would recognize many variations, alternatives, and modifications of embodiments herein.

FIG. 3 is an illustration of a graphical user interface (GUI) 302 of the mobile communication device 200, in accordance with the present disclosure, and has been explained in conjunction with FIG. 2.

The GUI 302 displays the summary of activities of a user (received from the server system 204 at the step 206 d) in a time line format. In an exemplary embodiment, the GUI 302 displays location of the user by three location symbols, i.e. a restaurant symbol 304, a cafeteria symbol 306 and a home symbol 308, indicating that the user has visited the restaurant, cafeteria and home one after the other. The locations represented by the graphical symbols 304, 306 and 308 are identified based on the GPS system of the mobile communication device 202, cell tower information for cellular networks, indoor positioning systems, proximal WiFi, and/or WiFi fingerprinting. The GUI 302 further displays activities performed by the user by respective graphical symbols. In an example, a ‘walking’ activity symbol 310 is displayed between the restaurant 304 and cafeteria 306 to indicate that the user has walked from the restaurant to cafeteria. Further, a ‘cycling’ activity symbol 312 is displayed between the cafeteria 306 and the home 308 to indicate that the user has cycled from the cafeteria to home.

The story line display 302 may be a touch screen display and may be configured in a manner such that when a user touches or points an activity indication symbol such as the ‘cycling’ activity symbol 312, or a line above or an area close to the symbol 312, a pop-up menu 314 is presented. The pop-up menu 314 includes a text field 316 for enabling the user to modify the activity and a symbol field 318 for enabling the user to modify the graphical symbol pertaining to the activity. Similarly when a user touches or points a location symbol such as the ‘restaurant’ symbol 304, or a line above or an area close to the symbol 304, a pop-up menu (not shown) may be presented to modify the location. The modification of location/activity symbol by the user is communicated to the server system 204 as a feedback (step 206 f).

FIG. 3 is merely an example, which should not unduly limit the scope of the claims herein. One of ordinary skill in the art would recognize many variations, alternatives, and modifications of embodiments herein.

FIG. 4 is an illustration of a graphical user interface (GUI) 402 of a mobile communication device 400, which is an example of the mobile communication device 200, and has been explained in conjunction with FIGS. 2 and 3. The GUI 402 is an alternate layout of the GUI 302. The GUI 402 displays a time line 404 that is divided into ‘activity’ zones/periods 406 a, 406 b, 406 c, 406 d and 406 e, hereinafter collectively referred to as activity zones 406, based on start and end time of one or more activities. Each activity zone 406 illustrates an activity and corresponding location of the activity. Further, each activity zone 406 may be illustrated by a graphical symbol 408 or a text description 410 of the corresponding activity.

In an exemplary embodiment, the timeline 404 indicates that at 13:00 pm, a ‘cycling’ activity of user ends and he/she is stationed at a ‘workplace’ until 17:10 pm; at 17:10 pm, the user starts a ‘walking’ activity towards home; at 17:30 pm, the user reaches home and is at home until 18:30 pm; at 18:30 pm, the user starts a ‘driving’ activity.

FIG. 4 is merely an example, which should not unduly limit the scope of the claims herein. One of ordinary skill in the art would recognize many variations, alternatives, and modifications of embodiments herein.

FIG. 5 is an illustration of steps of a method of determining activities of a user of a mobile communication device 500, in accordance with the present disclosure. The user activities are determined by an analysis logic module (not shown) which is supplied with the sensor and positioning data generated in operation by the mobile communication device 500, and an annotated sensor data database 502. The analysis logic module is communicatively coupled to the annotated sensor data database 502. In an embodiment of the present invention, the analysis logic module and the annotated sensor data database 502 may be present inside a remote server system. In another embodiment of the present invention, the analysis logic module and the annotated sensor data database 502 may be present inside the mobile communication device 500 itself.

At a step 504, the analysis logic module receives sensor and positioning data of the user from sensor and positioning systems of the mobile communication device 500. At a step 506, the analysis logic module stores the sensor and positioning data in a time line format in the annotated sensor data database 502, i.e. the sensor and positioning data is time stamped to record time and date of each or some of the collected data items. The annotated sensor data database 502 includes sensor and positioning data received from the mobile communication device 500, annotated with the information from user feedback on corresponding previously identified activities.

At a step 508, the analysis logic module analyzes the time line and delineates one or more activity periods and recognizes user activities in each activity period using different types of machine learning algorithms, which are trained using the data stored in the annotated sensor data database 502. For accurately identifying the activities, the analysis logic module may classify the annotated sensor and positioning data based on type of user, type of mobile device, type of user group, type of mobile device group, and demographic factors, etc. to take into account of environments and individual characteristics of the users. For example, acceleration data sensed by an accelerometer of the mobile communication device 500 for an active athletics specialized in long distance running may be different from the acceleration data sensed for a casual runner running very seldom. The active athletics may have longer steps with more predictable frequency between steps with lower variation of the frequency, than the casual runners. Therefore, for similar sensed data, the activity type may differ based on type of user group. Further, some mobile communication devices might have higher accuracy than others, therefore, for similar sensed data, the activity type may differ based on type of mobile communication device. The demographic classification may refer to segmenting users based on their gender, age, place of living etc, as the sensor data for a same activity might vary from person to person. The analysis logic module may further weigh the classified sensor data to take into consideration user specific features i.e. data could have weighted element consisting of average data from all users and user specific element from certain user based on the usage history.

At a step 510, the analysis logic module may use the classified sensor data to make a time line of the user activities, and communicate the time line to the mobile communication device 500. The mobile communication device 500 may display the time line on a user interface of the device 500. At a step 512, the analysis logic module may receive proposals for correcting one or more user activities in the timeline, from the mobile communication device 500. The proposals for correcting the user activities may be provided to the annotated sensor data database 502 for training of the machine learning algorithms.

At a step 514, the mobile communication device 500 may monitor whether or not the proposed time line has been viewed by the user using user interface analytics. If the user has viewed the proposed time line but not provided any correction in any activity of the timeline, then no feedback may be considered as positive feedback and is updated in the annotated sensor data database 502 that the analysis of one or more activities was correct and may be used as a training data for the algorithms. Further, if the user has viewed a storyline/timeline of a certain day and has been active in making corrections, one can conclude that that the recognized activities, which the user has not changed in the storyline, are probably considered to be correct and may be used as a training data for the algorithms. Further, it can be concluded that the recognized activities, which the user has changed in the storyline, are probably not correct. The amount of corrections made by users to certain activity can be used as a measure of recognition accuracy in regard to that activity. In the annotated sensor data database 502, the sensor data may be labeled, with a certain confidence of the labeling, based on the annotations containing information about user feedback on the corresponding proposed activities.

In an embodiment of the present invention, the analysis logic module may implement a first machine learning algorithm for determining user activities based on the sensor and positioning data, and newly introduce a second machine learning algorithm. However, if the data analyzed based on the second algorithm is more accurate than the data analyzed by the first algorithm, then the second algorithm may be determined to be priority algorithm over the first algorithm. This feature enables to test different setups and get “votes” on the capability of a machine learning algorithm.

It should be noted here that the steps 504 to 514 are only illustrative and other alternatives can also be provided where one or more steps are added, one or more steps are removed, or one or more steps are provided in a different sequence without departing from the scope of the claims herein.

FIG. 6 is an illustration of steps of using the system 100 for tracking and recording movements of the mobile communication device 102, in accordance with the present disclosure, and has been explained in conjunction with FIGS. 1 and 2. The method is depicted as a collection of steps in a logical flow diagram, which represents a sequence of steps that can be implemented in hardware, software, or a combination thereof.

At a step 602, the mobile communication device 102 is operable to communicate one or more sensor signals to the server system 104, wherein the sensor signals are indicative of motion associated with activities to which the mobile communication device 102 is exposed by its user. The sensor signals are output of one or more sensors of the mobile communication device 102.

At a step 604, the computing hardware of the server system 104 is operable to execute one or more software products for analyzing the sensor signals to classify them into one or more temporal zones, hereinafter referred to as activity zone, and for analyzing the sensor signals within each activity zone to determine a most likely activity type associated with the activity zone.

At a step 606, the computing hardware is operated to send information indicating one or more most likely activity types associated with the one or more activity zones to the mobile communication device 102.

At a step 608, the mobile communication device 102 is operable to request its user to provide a confirmation whether or not the information indicating the most likely activity types represent a correct analysis, and to communicate the confirmation back to the computing hardware for amending parameters and/or algorithms employed in the software products which execute analysis of the sensor signals to improve their accuracy.

It should be noted here that the steps 602 to 608 are only illustrative and other alternatives can also be provided where one or more steps are added, one or more steps are removed, or one or more steps are provided in a different sequence without departing from the scope of the claims herein.

Although embodiments of the current invention have been described comprehensively, in considerable detail to cover the possible aspects, those skilled in the art would recognize that other versions of the invention are also possible. 

What is claimed is:
 1. A method comprising: by one or more computing devices, receiving, from a client device, one or more sensor signals corresponding to one or more motions of the client device; by the one or more computing devices, determining one or more activities of a user, wherein: the user corresponds to the client device; and the determining comprises using a first analysis algorithm of the one or more computing devices to select, based on the one or more sensor signals, one or more activity types, wherein each of the one or more activity types corresponds to a particular time period; by the one or more computing devices, sending, to the client device, a reference to the selected activity types; by the one or more computing devices, receiving user input from the client device, wherein the user input indicates whether the reference is correct; and by the one or more computing devices, in response to the user input, determining whether to prioritize a second analysis algorithm of the one or more computing devices over the first analysis algorithm, wherein the determining priority is based on determining, based on the user input, that the second analysis algorithm is more accurate than the first analysis algorithm.
 2. The method of claim 1, wherein the determining the one or more activities further comprises: determining one or more user characteristics associated with the user; and, the selecting the one or more activity types is further based on: one or more classifications corresponding to the one or more user characteristics; and one or more signal parameters of the first analysis algorithm.
 3. The method of claim 2, wherein the one or more classifications of the set of user characteristics comprises: a demographic classification of the user; a device type of the computing device; an activity level of the user; or one or more groups associated with the user.
 4. The method of claim 3, wherein the demographic classification of the user comprises: gender; age; or place of living.
 5. The method of claim 3, wherein the determining further comprises one or more activity types associated with sensor signals of a plurality of other users, wherein the other users each correspond to user characteristics sharing one or more classifications with the set of user characteristics.
 6. The method of claim 2, wherein the determining further comprises weighing a portion of the sensor signals specific to the user compared to a portion of the sensor signals matching an average sensor signal from a plurality of users.
 7. The method of claim 1, wherein the reference comprises a timeline of activity periods experienced by the client device.
 8. The method of claim 7, wherein the timeline comprises: an indication of the activity types for each activity period; and one or more locations associated with each activity period.
 9. The method of claim 1, wherein a first processing module of the one or more computing devices determines the one or more activity types, and a second processing module of the one or more computing devices determines location and movement information corresponding to each of the one or more activity types.
 10. The method of claim 1, wherein the client device comprises a handheld mobile communication device.
 11. The method of claim 1, wherein the sensor signals are provided by one or more sensors of the client device, the sensors comprising: a gyroscopic angular sensor; an accelerometer; a GPS position sensor; a radio network based position sensor; a magnetometer; a microphone; a camera; or a temperature sensor.
 12. The method of claim 1, wherein selecting the activity types comprises: a supervised or semisupervised classification analysis of the sensor signals; or a heuristic analysis of the sensor signals.
 13. The method of claim 12, wherein the supervised or semisupervised classification analysis comprises a classification algorithm to measure one or more frequency components of the information included in the one or more sensor signals for determining the amplitudes of the one or more frequency components at different points in time, wherein the amplitudes are used as input parameters in the supervised classification analysis or heuristic analysis.
 14. The method of claim 1, wherein the determining whether to prioritize a second analysis algorithm of the one or more computing devices over the first analysis algorithm further comprises determining whether to adjust the first analysis algorithm based on the indication of the user input.
 15. The method of claim 1, wherein the indication of the user input comprises a correction of the reference by the user, and the one or more computing devices determines that the indication represents a lowered accuracy of the first analysis algorithm.
 16. The method of claim 15, wherein the correction comprises a correction to a geographic location associated with an activity period of the reference.
 17. The method of claim 15 wherein the correction comprises a correction to the activity types corresponding to an activity period of the reference.
 18. The method of claim 15, wherein the correction comprises a correction to the time period corresponding to an activity period of the reference.
 19. A system comprising: one or more processors; and a memory coupled to the processors comprising instructions executable by the processors, the processors operable when executing the instructions to: receive, from a client device, one or more sensor signals corresponding to one or more motions of the client device; determine one or more activities of a user, wherein: the user corresponds to the client device; and the determining comprises using a first analysis algorithm of the system to select, based on the one or more sensor signals, one or more activity types, wherein each of the one or more activity types corresponds to a particular time period; send, to the client device, a reference to the selected activity types; receive user input from the client device, wherein the user input indicates whether the reference is correct; and determine, in response to the user input, whether to prioritize a second analysis algorithm of the system over the first analysis algorithm, wherein the determining priority is based on determining, based on the user input, that the second analysis algorithm is more accurate than the first analysis algorithm.
 20. One or more computer readable non-transitory storage media embodying software that is operable when executing on a computing device to: receive, from a client device, one or more sensor signals corresponding to one or more motions of the client device; determine one or more activities of a user, wherein: the user corresponds to the client device; and the determining comprises using a first analysis algorithm of the computing device to select, based on the one or more sensor signals, one or more activity types, wherein each of the one or more activity types corresponds to a particular time period; send, to the client device, a reference to the selected activity types; receive user input from the client device, wherein the user input indicates whether the reference is correct; and determine, in response to the user input, whether to prioritize a second analysis algorithm of the computing over the first analysis algorithm, wherein the determining priority is based on determining, based on the user input, that the second analysis algorithm is more accurate than the first analysis algorithm. 